/******************************************************************************
**                                                                           **
**                 Proprietary and Confidential Information                  **
**                                                                           **
**                 Copyright (c) Conexant Systems, Inc. Unpublished                  **
**                                                                           **
** This source code and the algorithms implemented therein constitute        **
** confidential information and may compromise trade secrets of Conexant Systems,    **
** Inc. or its associates, and any unauthorized use thereof is prohibited.   **
**                                                                           **
******************************************************************************/
#ifndef __USBGADGET_H__
#define __USBGADGET_H__
/**************************************************************************//**
*  @file usbgadget.h
*  @brief common interface to poll-based usb gadget driver
******************************************************************************/
/******************************************************************************
*  FILE FORMAT: <PUBLIC>
*      1. INCLUDES 
*      2. ENUMERATIONS 
*      3. DEFINES
*      4. STRUCTURES
*      5. GLOBALS
*      6. PUBLIC FUNCTION PROTOTYPES
******************************************************************************/
/******************************************************************************
*  1. INCLUDES
******************************************************************************/
#include "dc_type.h"
#include "dc_return_codes.h"

/******************************************************************************
*  2. ENUMERATIONS
******************************************************************************/
/******************************************************************************
*  3. DEFINES
******************************************************************************/
/******************************************************************************
*  4. STRUCTURES
******************************************************************************/
/******************************************************************************
*  5. GLOBALS
******************************************************************************/
/******************************************************************************
*  6. PUBLIC FUNCTION PROTOTYPES
******************************************************************************/
DC_RETURN_CODE usb_gadget_open(char* name, void** obj);
DC_RETURN_CODE usb_gadget_close(void* obj);
UINT32 usb_gadget_out_get(void* ref, UINT32 size, UINT8 *data);
UINT32 usb_gadget_out_peek(void* ref, UINT32 size, UINT8 *data);
boolean usb_gadget_out_remove(void* ref, UINT32 size);
UINT32 usb_gadget_in_space_in_buf_get(void* ref, UINT32 needed);
UINT32 usb_gadget_in_put(void* ref, UINT32 size, UINT8 *data);
void usb_gadget_in_flush(void* ref);

#endif /* __USBGADGET_H__ */
